package com.aconcagua.beans {
  import com.aconcagua.factory.BeanFactory;
  
  public interface BeanDefinition {
    function get name(): String;
    function set name(aName: String): void;
    function get type(): Class;
    function get lazy(): Boolean;
    
    [Inspectable(enumeration="singleton,prototype")]
    function get scope(): String;
    function get isSingleton(): Boolean;
    function get isPrototype(): Boolean;
    
    function createInstance(factory: BeanFactory): Object;
    
    function applyProperties(instance: Object, factory: BeanFactory): void;
  }
}